package main

import "fmt"

func main() {
	s := []int{1, 2, 3, 4, 5}
	s1 := s[1:3]
	//虽然s1与s2共享长度为5的底层数组，但是切片s1有自己的限制，其len为2
	//因此range迭代中指挥输出切片s1的前两个的内容
	for index, item := range s1 {
		fmt.Printf("索引%d元素是%d\n", index, item)
	}
	//索引0元素是2
	//索引1元素是3

	oneSlice := []int{1}
	fmt.Printf("%v-%p\n", oneSlice, oneSlice)
	//按照正常思想会报错，但是go做了特殊处理，截取方位是 0<=start<=end<=len(oneSlice)
	//因此这种截取方式返回的是一个空切面
	newOneSlice := oneSlice[1:]
	fmt.Printf("%v-%p\n", newOneSlice, newOneSlice)
	//此处会报错，空切面不可访问
	//fmt.Println(newOneSlice[0])
}
